package com.zhaojk.audio.domain.tos;

import com.fasterxml.jackson.annotation.JsonInclude;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;

@Data
@JsonInclude(JsonInclude.Include.NON_NULL)
public class TextToImageOutput {
    private RespJson resp_json;

    @Data
    public static class RespJson {
        private int code;
        @JsonProperty("data")
        private Data1 data1;
        private String message;
        private String request_id;
        private int status;
        private String time_elapsed;

        @Data
        public static class Data1 {
            private AlgorithmBaseResp algorithm_base_resp;
            private String binary_data_base64;
            private String[] image_urls;
            private InferCtx infer_ctx;
            private String llm_result;
            private String pe_result;
            private String predict_tags_result;
            private String rephraser_result;
            private String vlm_result;

            @Data
            public static class AlgorithmBaseResp {
                private int status_code;
                private String status_message;
            }

            @Data
            public static class InferCtx {
                private String algorithm_key;
                private String app_key;
                private String created_at;
                private String generate_id;
                private String log_id;
                private Params params;
                private String request_id;
                private String session_id;
                private String time_stamp;

                @Data
                public static class Params {
                    private String app_id;
                    private String aspect_ratio;
                    private String common_params;
                    private int ddim_steps;
                    private String edit_session_id;
                    private int fps;
                    private int frames;
                    private String group_name;
                    private int height;
                    private String input_image_url;
                    private boolean is_only_sr;
                    private boolean is_pe;
                    private String llm_result;
                    private String media_source;
                    private int n_samples;
                    private String negative_prompt;
                    private String ori_prompt;
                    private String origin_request_id;
                    private int output_height;
                    private int output_width;
                    private String pe_result;
                    private String predict_tags_result;
                    private String rephraser_result;
                    private String req_key;
                    private double rescale;
                    private String resolution;
                    private double scale;
                    private int seed;
                    private int shift;
                    private int sr_img2img_fix_steps;
                    private int sr_scale;
                    private double sr_strength;
                    private String sr_upscaler;
                    private int steps;
                    private double strength;
                    private String trace_id;
                    private String translate_negative_prompt;
                    private String translate_prompt;
                    private boolean use_pre_llm;
                    private boolean use_prompt_aug;
                    private boolean use_sr;
                    private String version_id;
                    private String video_url;
                    private String vlm_edit;
                    private String vlm_input;
                    private String vlm_output;
                    private int width;
                }
            }
        }
    }
}